package com.hqyj.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hqyj.dao.UserInfoDao;
import com.hqyj.pojo.UserInfo;
import com.hqyj.util.ResultVo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * 项目:springboot06
 * 描述:
 * 时间:2024/11/28 15:02
 * 作者:admin
 * 版本:1.0
 **/
@RestController
@RequestMapping("/user")
public class UserInfoController {

    //获取userInfoDao的对象
    @Resource
    UserInfoDao dao;
    //用户删除
    @RequestMapping("/del")
    public ResultVo del(Integer userId){
        try{
            int num = dao.deleteById(userId);
            if(num>0){
               return ResultVo.success("删除成功");

            }else{
                return ResultVo.error("删除失败");
            }

        }catch (Exception e){
            e.printStackTrace();
            return ResultVo.error("数据异常");
        }
    }
    //用户修改
    @RequestMapping("/update")
    public ResultVo update(Integer userId,String userName,String password){
        try{
            UserInfo u  = new UserInfo();
            u.setUserId(userId);
            u.setUserName(userName);
            u.setPassword(password);

          int num  = dao.updateById(u);
          if (num >0){
              return ResultVo.success("修改成功");
          }else{
              return ResultVo.error("修改失败");
          }

        }catch (Exception e){
            e.printStackTrace();
            return ResultVo.error("数据异常");
        }

    }
    //数据查询
    @RequestMapping("/list")
    public ResultVo list(String userName){
        try{
            //创建条件构造器
            QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
            //判断用户是否输入了查询条件
            boolean is = userName!=null&&!userName.equals("");
            //模糊查询
            queryWrapper.like(is,"userName",userName);
            List<UserInfo> list =dao.selectList(queryWrapper);
            if (list.size()>0){
                return ResultVo.success("查询到数据",list);
            }else{
                return ResultVo.error("没有查询到数据");
            }
        }catch (Exception e){
            e.printStackTrace();
            return ResultVo.error("数据异常");
        }

    }
    //用户登录
    @RequestMapping("/login")
    public ResultVo login(String userName, String password){
        try{
            //1 验证用户名是否正确
            QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("userName",userName);
            UserInfo userInfo =dao.selectOne(queryWrapper);
            if(userInfo==null){
               return ResultVo.error("用户名不正确");
            }
            //2 验证密码是否正确
            if(!userInfo.getPassword().equals(password)){
                return ResultVo.error("密码不正确");
            }
            //3 用户名和密码正确
            return ResultVo.success("允许登录");
        }catch (Exception e){
            e.printStackTrace();
            return ResultVo.error("数据异常");
        }


    }
    //注册
    @RequestMapping("/zhuce")
    public ResultVo zhuce(String userName, String password){

           try{
               System.out.println(userName);
               System.out.println(password);
               //创建条件构造器
               QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
               queryWrapper.eq("userName",userName);
               UserInfo userInfo =dao.selectOne(queryWrapper);
               //判断userInfo是否有数据
               if(userInfo!=null){
                   return ResultVo.error("用户名重名");
               }
               //新增
               //创建userInfo对象
               UserInfo  user = new UserInfo();
               //赋值给user
               user.setUserName(userName);
               user.setPassword(password);

               int num = dao.insert(user);
               if (num > 0){
                   return ResultVo.success("注册成功");
               }else{
                   return ResultVo.error("注册失败");
               }
           }catch (Exception e){
               e.printStackTrace();
               return ResultVo.error("数据异常");
           }



    }
}
